#ifndef SHADEROBJECT_H
#define SHADEROBJECT_H

#include "string"
#include "vector"
#include "iostream"

/// @file ShaderObject.h
/// @brief unit shader object, keeping data about shaders read from the config file
/// @author Perseedoss Rajiv
/// @version 1.0
/// @date 29.03.11
/// Revision History :
/// Initial Version 29.03.11
/// @class ShaderObject
/// @brief a base object used to store shader info from the config file

class ShaderObject
{
public:
    /// @brief ctor
    /// @param[in] _shaderName the name of the shader
    /// @param[in] _vertexFile the filename of the vertex shader file
    /// @param[in] _fragementFile the filename of the fragment shader file
    ShaderObject
            (
                const std::string _shaderName,
                const std::string _vertexFile,
                const std::string _fragementFile
            );

    /// @brief returns the name of the shader
    inline std::string getShaderName() const { return m_shaderName; }

    /// @brief returns the filename of the vertex shader file
    inline std::string getVertexFile() const { return m_vertexFile; }

    /// @brief returns the filename of the fragment shader file
    inline std::string getFragementFile() const { return m_fragementFile; }

private:
    /// @brief shader name
    std::string m_shaderName;

    /// @brief filename of the vertex shader file
    std::string m_vertexFile;

    /// @brief filename of the fragment shader file
    std::string m_fragementFile;

};

#endif // SHADEROBJECT_H
